package com.motu.vertx.module.utility.kafka;

import io.vertx.core.json.JsonObject;

import java.util.Properties;

public class KafkaManager {

    /**
     * 优化kafka生产者配置，延迟写入kafka，降低生产压力
     * @param producerConfig 生产者配置对象
     * @param appConfig 游戏配置对象
     */
    public static void upgradeProducerConfig(Properties producerConfig, JsonObject appConfig){
        String bufferMemory = "335544320";// 320M（默认32M)
        String batchSize = "65536";// 64K（默认16K）
        String lingerMs = "1000";// 1000ms（默认0）
        if (appConfig.containsKey("kafka-config")){
            JsonObject kafkaConfig = appConfig.getJsonObject("kafka-config");
            bufferMemory = kafkaConfig.getString("buffer.memory");
            batchSize = kafkaConfig.getString("batch.size");
            lingerMs = kafkaConfig.getString("linger.ms");
        }
        producerConfig.put("buffer.memory", bufferMemory);
        producerConfig.put("batch.size", batchSize);
        producerConfig.put("linger.ms", lingerMs);
    }

}
